home *** CD-ROM | disk | FTP | other *** search
/ Joystick Magazine 1996 May / cd joy 71No13.iso / pc / demos / eurosoc / source / memstruc.h < prev    next >
Text File  |  1995-08-31  |  4KB  |  136 lines

  1. #ifndef _MEMSTRUC_H_INCLUDED
  2. /*
  3.  …ÕÕÕÕÕÕÕÕÕÕÕÕª
  4.  ∫ AUTOHEADER ∫
  5.  ÃÕÕÕÕÕÕÕÕÕÕÕÕ ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕª
  6.  ∫ Filename     MEMSTRUC.H       ∫
  7.  «ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ∂
  8.  ∫ Creation     28/7/1995        ∫
  9.  ÃÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕπ
  10.  ∫                               ∫
  11.  ∫ Updated: Thu 31/8/1995 11:07  ∫
  12.  ∫                               ∫
  13.  ∫ Version: 1.031                ∫
  14.  ∫                               ∫
  15.  »ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕº
  16. */
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20.  
  21. #define DASP_ID    'PSAD'
  22.     //DASP in reverse
  23.  
  24. typedef struct    _DASP {
  25.   char                      id_text[4];
  26.   unsigned short int version;      
  27.   unsigned short int size_sprite;
  28.   unsigned long int  offset_sprite;
  29.   unsigned long int  offset_palette;
  30.   unsigned long int  offset_MONOcolours;
  31.   unsigned long int  offset_names;
  32.   unsigned short int size_names;
  33.   unsigned short int size_anim;
  34.   unsigned long int  offset_anim;
  35.   unsigned short int filler00;
  36.   unsigned short int skysprite;
  37.   unsigned short int offset_object;
  38. } _DASP;
  39.  
  40.  
  41. typedef struct    _DASP_SPO {
  42.   unsigned long int  offset;
  43.   unsigned short int size;
  44.   unsigned short int flags;
  45. } _DASP_SPO;
  46. #define SF2SPO_Packed        0x0001
  47.  
  48. #define MaxDasImages 4096
  49. #define MaxDasObject 512
  50.  
  51.  
  52. typedef struct    _DASP_COL {
  53.   unsigned char          palette[256*3];
  54.   unsigned short int colblack;
  55.   unsigned char          shade1[256*32];
  56.   unsigned char          shade2[256*32];
  57.   unsigned char          tint[65536];
  58.   unsigned char          mirrorcon[256];
  59.   unsigned char           lightning[256];
  60. } _DASP_COL;
  61.  
  62.  
  63. // image structure callback
  64. // there are 5 types of structure
  65. // Test bits in (_Image.flags) in this order....
  66. //
  67. // 1) MemRef : if IF_MemRef;    (ANIM,DIR,DIR16), should never bee seen in callback
  68. // 2) JANIM  : if IF_JANIM;   (JANIM,JDIR,JDIR16,JOINED)
  69. // 3) DAN     : if IF_Dan;
  70. // 4) O3D     : if IF_3dObj;
  71. // 5) normal : if none of the above
  72. //
  73.  
  74. typedef struct    _Image {
  75.   unsigned char          filler[8];
  76.   unsigned short int segment;     // allocated segment to refrence image
  77.   unsigned short int flags;
  78.   unsigned short int xsize;
  79.   unsigned short int ysize;
  80. } _Image;
  81.  
  82. // _Image.flags defines
  83.  
  84. #define     IF_ShiftMask    0x000f
  85. #define     IF_Roof            0x0010
  86. #define     IF_MemRef        0x0020    // structure not define here
  87. #define     IF_JANIM        0x0040    // structure below
  88. #define     IF_HalfPix        0x0080
  89. #define     IF_Dan            0x0100    // structure below
  90. #define     IF_NotTran        0x0200
  91. #define     IF_Tint            0x0400
  92. #define     IF_Mirror        0x0800
  93. #define     IF_ImageBoost    0x6000
  94. #define     IF_3dObj        0x8000   // sturucture not define here
  95. #define     IF_ImageRot90    0x1000
  96.  
  97.  
  98. typedef struct    _DAN_Image {
  99.     _Image  header;
  100.   unsigned long int filesize;
  101.   unsigned short int HeadSize;    // offset to RAW sprite
  102.   unsigned short int ManyFrames; 
  103.   signed   short int CurrentFrame; // temp = CurrentFrame+2; if temp = ManyFrame then last frame in SEQ
  104.   unsigned char      FrameClock;
  105.   unsigned char      FrameSpeed;
  106.   // now follows ManyFrames x dword offsets
  107. } _DAN_Image;
  108.  
  109.  
  110.  
  111. typedef struct    _JANIM_Image {
  112.     _Image  header;
  113.   unsigned short int flags;
  114.   // now follows ManyFrames x word offsets div 16
  115. } _JANIM_Image;
  116.  
  117. //_JANIM_Images.flags defines
  118.  
  119. #define JIF_DIR      0x8000
  120. #define JIF_JOINED  0x4000
  121. #define JIF_DIR16   0x2000
  122. #define JIF_CntMask 0x0ffe    // cnt is always *2.. so add this for first frame
  123.  
  124.  
  125. typedef struct    _Normal_Image {
  126.     _Image  header;
  127.    // image data start here
  128. } _Normal_Image;
  129.  
  130.  
  131. #define _MEMSTRUC_H_INCLUDED
  132. #ifdef __cplusplus
  133. };
  134. #endif
  135. #endif
  136.